The invention is related to the field of receivers for digital transmissions and more specifically to receivers for encoded digital television signals based on multiple standards.
Today, there are at least three media over which digital video is delivered to the homexe2x80x94cable, satellite and terrestrial. In each case, a video signal is channel encoded and modulated to convert the video data to a form suitable for transmission over the chosen medium. An inverse operation is performed at the receiver to retrieve the transmitted signal. The device which performs the demodulation and channel decoding is known as a channel decoder.
Since the characteristics of each medium are different, each has its own associated transmission standard. In addition, standards are different in different regions of the world. In the U.S., the standard for terrestrial transmission is trellis coded 8-level Vestigial Side-band (8-VSB) modulation prescribed by the Advanced Television Systems Committee (ATSC) and cable transmission will probably use the same standard. The 8-VSB standard for terrestrial broadcasting allows either QPSK or QAM to be used and cable broadcasting will probably use 256-QAM for HDTV. In Europe, the Digital Video Broadcasting (DVB) group prescribes three different standards DVB-S, DVB-C and DVB-T for satellite, cable and terrestrial broadcasting respectively. The modulation scheme used in Europe for these DVB standards is Coded Orthogonal Frequency Division Multiplexing (COFDM). For terrestrial broadcasting, Japan has adapted Bandwidth Segmented Transmission (BST) Orthogonal Frequency Division Multiplexing (OFDM) which is similar to COFDM. 8-VSB and COFDM are radically different transmission schemes.
8-VSB is essentially an 8-level amplitude modulation scheme with a suppressed lower side band. The synch byte of 188 byte MPEG packets is stripped off and the remaining 187 bytes are pseudo-randomized. A Reed-Solomon encoder encodes the 187 byte blocks into 207 byte blocks with forward error correction. A data interleaver reorders the bytes within a block. The trellis encoder converts each byte to four 8-level channel symbols. A MUX inserts a synch byte after each 824 symbols resulting in a block of 825 symbols. A pilot signal is inserted for use equalization in the receiver. The resulting information stream is used to modulate a carrier which is radio frequency (RF) up-converted to the desired frequency and transmitted.
Herein the term stream simply means an ordered sequence of samples. This definition of a stream deviates from that often used in the video decoding community where a stream is usually defined as an ordered sequence of packets. A packet is a structured data element containing at least several bytes of data, but a sample is at most a complex number.
In COFDM the synch bytes are stripped from MPEG packets which are randomized and provided as a stream of samples. The stream is formed into 204,188 byte blocks of error encoded information by a Reed-Solomon encoder. As an outer code, the information is convolutionally interleaved with a depth of 12. A punctuated convolutional code is used as an inner code at least for DVB-T and DVB-S. A block-based interleaver rearranges the information. The signal is mapped to quadrature phase keyed (QPK) modulation or a level (e.g. 8, 16, 32, 64 or 128 level) of quadrature amplitude modulation depending on the bit rate and ruggedness required for the system. Pilot signals are mixed with the information and the signal is framed. Then an Inverse fast Fourier transformer converts the result into either 1705 carriers (called 2K) or 6817 carriers (called 8K) with 24 bit complex samples. Cyclic prefixes and guard bands are then added. Then the signal is RF up-converted to the desired frequency and transmitted.
A major difference in the architecture of channel decoders for VSB and OFDM transmissions concerns the respective block sizes of information required for processing and the operations that are performed on the blocks. For VSB, there is only one carrier so that demodulation is fairly simple and may be performed on a symbol by symbol basis. The resulting blocks of information are only 207 bytes and after forward error correction the blocks are only 187 bytes. Thus, only relatively small amounts of data need to be moved between processors and stored in the processors for processing. On the other hand, OFDM uses 2K or 8K carriers with 24 bit samples and demodulation requires fast Fourier transforms of the 2K or 8K by 24 bit blocks and is quite complicated. The storage requirements are thus much larger and moving data as a stream between processors for each operation is no longer practical so that the processors need to share a memory.
Both the 8-VSB and the COFDM channel decoders first perform a sample rate conversion. In the 8-VSB channel decoder, an SQRC filter operates on the output of the sample rate converter to provide timing recovery information that is fed back for the sample rate conversion. In the COFDM receiver the guard bands are removed from the output of the sample rate converter and the resulting information is subjected to an FFT. Intermediate synchronization information extracted during the FFT, is fed back to the sample rate conversion and other information added to the output of the sample rate conversion prior to guard band removal. Then the output of the FFT is subjected to channel estimation which is used in channel correction of the output of the FFT.
Two common approaches to designing channel decoders are the so called hardware approach and the software approach. In the hardware approach, special purpose processors (SPPs) are provided to perform the functions required for the channel decoding, for example, Application Specific Integrated Circuits (ASICs) or Field modified Programmable Gate Arrays (FPGAs) may be provided. These special purpose processors are able to operate at very high speeds. They also minimize the amount of hardware required and minimize software programming development time.
In the so called software approach, digital signal processors (DSPs) are programmed to perform each required function. DSPs are similar to general purpose processors with some modifications for more efficient signal processing. Programmed DSPs do not operate as quickly as SPPs and occupy more space than SPPs. DSPs are essentially off-the-shelf designs, so they reduce hardware development costs. Generally, DSPs can be used to provide a more flexible solution that may be upgraded as standards change.
A digital signal processor and shared memory scheme with arbitration is disclosed in U.S. Pat. No. 5,685,005 to Garde. A method of generating special purpose processors for particular problems is disclosed in U.S. Pat. No. 6,075,935 to Ussery. Ussery also discloses respective memories shared between respective pairs of parallel processors. A multiprocessor system for video processing re-configurable for SIMD or MIMD processing and accessing shared memory through a crossbar switch is disclosed in U.S. Pat. No. 5,471,592 to Gove. Gove uses a master processor to control the processing including the connections of the crossbar switch to interconnect the processors and the memory. U.S. Pat. No. 5,046,080 to Lee discloses a videophone system with multiple pipelined DSPs each accessing two buses, a VME bus and a memory bus.
Those skilled in the art are also directed to U.S. patent application Ser. No. 09/639,149 filed Aug. 8, 2000 by Vaidyanathan et. al. which discloses a sample-based communications network.
The above citations are hereby incorporated herein in whole by reference.
In the invention herein, a channel decoder includes a multitude of channel decoding functional units. A first plurality of the functional units communicate through a sample-based communication unit for channel decoding streams of sample-based channel encoded signals such as an 8-VSB transmission. The first functional units receive a stream of samples from the sample-based communication unit, stores the samples in the functional unit, perform sample-based processing on the stored samples, and transmit a stream of processed samples back to the sample-based communications unit. The sample-based communications unit receives a stream of channel encoded samples from an input/output bus and provides the samples to one of the first functional units for initial processing. The processed samples are passed as a stream from that one functional unit to subsequent first functional units for further sample-based processing until the channel decoding is complete. Finally, the sample-based communications unit provides the channel decoded samples back to the input/output bus.
Herein, sample-based processes refers to the fact that only a few ordered samples (e.g. 1 to 3 samples) are involved in the processing in a functional unit as opposed to block-based processing in which access to hundreds or thousands of samples of information are required for processing. In sample-based processing, functional units operate on input samples as they are received and transmit output samples as the output samples are completed. In block-based processing, each functional unit exclusively operates on fully populated input blocks and provide fully populated output blocks at the end of their processing for exclusive use by a subsequent functional unit. Generally, the blocks are not transmitted between functional units, but instead exclusive use of the blocks is passed from functional unit to functional unit. When possible, the input block is used as the output block.
A second plurality of the functional units communicate through a block-based communication unit for channel decoding block-based communication signals such as a COFDM transmission. The second functional units each communicate with one or more memory blocks of an electronic memory through the block-based communication unit. Preferably, the memory blocks have a uniform size. They load the sample information from a memory block, process the information, and store the processed information in the same memory block or in another memory block of the electronic memory. The second functional unit continues to access the same memory block or blocks until the processing to be performed by that second functional unit is complete and then the memory block may be accessed by a subsequent second functional unit. The block-based communication unit receives a stream of samples from the input/output bus and stores the samples into a memory block until a complete information block is stored. Preferably, the stream of samples are initially loaded from the stream into one of the functional units known as an accumulator which determines when a block of information has been accumulated and stores the resulting block of information into one of the memory blocks. Then the memory block is accessed by subsequent second functional units one-at-a-time which further process the block of information until decoding is complete. Finally, a stream of the decoded samples are provided through the block-based communication unit to the input/output bus.
At least some of the functional units are members of both the first and second plurality, that is, they are connected to both the sample-based communication unit and the block-based communication unit for performing similar functions for each respective type of decoding. At least some of these duel connected functional units are capable of being re-configured. At the beginning of sample-based processing of a sample-based transmission, these reconfigurable functional units are configured for sample-based processing. Similarly, at the beginning of block-based processing of a block-based transmission, these reconfigurable functional units are configured for block-based processing.
The functional units include functional units that are different for performing different functions of the channel decoding. The different functional units may be digital signal processors that are programmed to perform different functions, but preferably, the functional units include special purpose processors that are optimized for performing different functions of the channel decoding at a high speed for real-time reception of the 8-VSB or COFDM transmissions. Preferably the optimization of the special purpose processors includes fixed differences, that is, the processors differ by more than the programs in their writable memory.
The channel decoder also includes a control unit for configuring the reconfigurable functional units at the beginning of the sample-based or block based processing. Preferably, the control unit is a digital signal processor connected to the sample-based communications unit and it also performs some of the processing for channel decoding at least the sample-based transmissions. This allows the control unit to communicate with the reconfigurable functional units to reconfigure the reconfigurable functional units, but preferably, the control unit and all the functional units are directly connected to the input/output bus, and the control unit communicates with the reconfigurable functional units through the input/output bus to configure the reconfigurable functional units. After the control unit provides the initial configuration, then control of the functional units becomes data driven. For sample-based processing the functional units are controlled by the reception of data, and for block-based processing the functional units are controlled by the reception of information from another functional unit such as a pointer to a memory block or a flag indicating that the previous functional unit has completed its processing of the next memory block to be processed by the controlled functional unit.
The block-based communication unit may be a single bus or a plurality of busses for simultaneous access by respective functional units to respective memory blocks. The block-based communication unit may be one or more time-multiplexed buses for sequential one-at-a-time access by functional units to respective memory blocks, but preferably, the block-based communications unit is a cross-bar switch for simultaneous access between multiple functional units and one or more corresponding memory blocks. Preferably, the block-based communication unit is reconfigurable, such as by writing information in control registers that specify the order in which the functional units will access the memory blocks. The control unit also configures the reconfigurable block-based communications unit at the beginning of block-based processing and thereafter during the block-based processing the block-based communication unit controls the connections between functional units and blocks of memory according to the initial configuration provided by the control unit. The memory blocks may include a physically separate RAM for each memory block, or multiple blocks in each of one or more RAMs, or portions of memory blocks striped across a plurality of different RAMs.
Preferably, the channel encoder is contained in a single integrated circuit chip which is mounted on a circuit board and interconnected with wire bond or flip chip connections to form a circuit board assembly. The circuit board assembly may be part of a set-top box or a television set.
Those skilled in the art will understand the invention and additional objects and advantages of the invention by studying the description of preferred embodiments below with reference to the following drawings which illustrate the features of the appended claims: